<?php
/**
*
*
*/
interface Yz_Application_Interface
{
    /**  get the application-wide config registry
     *   @return Yz_Config_Interface&
     */
    public static function getConfig();

    /**  try to load module
     *   @param string moduleName
     *      1. full class name
     *      2. short class name (Yz_Module_ will be prefixed)
     *      3. 'namespace.module' notation
     *   @return Yz_Module_Interface&
     */
    public static function selectModule( $moduleName );

    /** try to load class
     *  @return string: class name
     *  @throw ClassError
     */
    public static function loadClass( $className );

    /**
     *
     */
    public static function main($args=null);
} // interface

